The present invention relates to maintaining objects and, more particularly, to maintaining objects using a computer self learning method to build a table for determining which user interface (UI) screen to navigate to for enabling a user to enter new data for a property of an object with inconsistent data. The data of the object is determined to be inconsistent by the application of a set of rules that place constraints on the values of the data.
Object oriented programming is often used to implement large computer software systems such as customer relationship management software. Objects in object oriented computer software systems are collections of properties (or fields) and methods (or modules or computer code). The properties or fields are working data of the computer system. The methods are computer code for executing on the working data of the properties. Often objects can be very large with numerous properties or fields for holding working data of the computer software system. For example, an object for an employee may contain a property (or field) for the name of the employee, a property for the salary of the employee, a property for the work history of the employee, a property for the address of the employee, etc. An object in a customer relationship management system may have thousands of properties.
UI screens present an object's properties or data to a user and provide the user the ability to enter new data for an object's properties. Many different UI screens may write to an object's properties, and the UI screens may be frequently changed to accommodate new programming requirements. Often, objects are maintained using a set of consistency rules that specify constraints on the values that the object's properties can take. The consistency rules are often not applied when the values for the object's properties are entered using the UI screens, but rather are applied to the object's properties during a separate maintenance operation performed by the computer system. When a property of an object is found to be inconsistent with the consistency rules, this means the value of the property is not an acceptable value and thus needs to be changed. A UI screen needs to be presented to a user to allow the user to correct the value of the property to remove the inconsistency. It may be difficult to determine which UI screen to navigate to for correcting inconsistent data of an object for many reasons including the UI screens may be changing constantly, new properties may be added to the object, and new consistency rules may be added.
FIG. 1 illustrates known techniques for maintaining an object 102 of a computer software system. The object employee 102 is a collection of properties 104 of a computer software system. The properties 104 are working data for the computer software system. For example, the name property 104.1 may be named “Name” and may be the name of the employee represented by the employee object 102. A computer system may have UI screens 106 defined for it for displaying and setting the values of the properties 104 of the object employee 102. For example, UI screen 106.1 may include a field “Name” 108.1 which enables a user to enter a value for the property “Name” 104.1 of the object employee 102 and enables the user to issue a command that causes the computer system to write the new value for property “Name” 104.1 to computer storage. The UI screens 106 may be changed and the properties 104 that can be changed from a particular UI 106 may change. So, for example, as illustrated UI screen 106.1 includes the field “Salary” 108.2 to change the value of property “Salary” 104.2 of the object employee 102, but the UI screen 106.1 may be changed as part of updating the computer software system so that the UI screen 106.1 no longer includes the field salary 108.2 to change the value of the property “Salary” 104.2 of the object employee 102. For example, the field “Salary” 108.2 for the property “Salary” 104.2 may be moved to the assignments UI screen 106.2.
The computer software system may include consistency rules 108 which define constraints on the values that the object properties 104 should contain. An example consistency rule 110 may be that the value of the object employee 102 property “Salary” 104.2 has to be positive.
The computer software system may include an object maintenance screen 112 for a user to maintain objects 102. The maintenance screen 112 may include a selection object button 114 for selecting which object 102 to maintain, and a selected object field 118 for displaying the selected object 118. The maintenance screen 112 may further include an apply consistency rules button 120 that causes the computer system to apply the consistency rules 108 to the selected object 118 and an inconsistencies area 122 to display inconsistencies with the selected object 102. For example, if the object employee 102 was selected in area 118, and the apply consistency rules button 114 was selected to perform a consistency check on the object employee 102, then the consistency rule 110 would be applied to object employee 102 and any inconsistencies would be displayed in inconsistencies area 122. For example, if the property “Salary” 104.1 had a value of zero or a negative value, then the consistency rule 110 would not be satisfied and a message reporting that the value of the property “Salary” 104.2 is inconsistent or needs to positive would be displayed in the inconsistencies area 122. The user needs a way to navigate to the UI screen 106 where the value of the property “salary” 104.2 can be changed in order to correct the inconsistency.
The object maintenance screen 112 may include a list of the UI screens 126 that are associated with the object 102. The user may for example, select the button for the UI screen “New Employee” 128 and be taken to the UI screen “New Employee” 106.1 by the computer system. The computer system may present the UI screen “New Employee” 106.1 in the area 132. However, which UI screen 106 contains property “salary” 104.2 may not be known by the user. There may be a button “Navigate to UI screen to fix Inconsistency” 130 for the computer system to navigate to the UI screen 106 to enable the user to correct the inconsistency, but determining which UI screen 106 to navigate to is difficult, because the UI screens 106 may frequently be changed, and because hard coding which UI screen 106 to navigate to is burdensome and error prone.
Accordingly, there is a need in the art for a system and method of maintaining objects 102 with computer self learning of which UI screen 106 to navigate to for correcting inconsistent object properties 104.